Time interleaved analog to digital converter mismatch correction

ABSTRACT

A machine-implemented method can include receiving a common input signal over M parallel time-interleaved (TI) analog to digital converter (ADC) channels, determining a multiple-input, multiple-output finite impulse response (FIR) filter structure for correcting bandwidth mismatches between the M parallel TIADC channels, and providing a common output signal comprising TI data corresponding to the M parallel TIADC corrected channels.

CROSS-REFERENCE TO RELATED APPLICATION

The present application claims the benefit of U.S. Provisional Patent Application No. 61/674,511, titled “TIME INTERLEAVED ANALOG TO DIGITAL CONVERTER MISMATCH CORRECTION” and filed on Jul. 23, 2012, the content of which is hereby fully incorporated by reference herein.

TECHNICAL FIELD

Embodiments of the disclosed technology generally relate to Analog to Digital Converters (ADCs) and, more particularly, to correction of mismatches between Time Interleaved (TI) ADC outputs.

BACKGROUND

Current techniques include frequency domain implementations of corrections that are specifically directed to processing frames of data, see, e.g., U.S. Pat. No. 7,541,958. In other current techniques, a linear M-periodic system can be represented in the frequency domain by M×M matrixes (where M is the number of time interleaved ADC channels in our case). In order to get such representation, the distinct sets of M normalized frequencies

$f,{f + \frac{1}{M}},\ldots \mspace{14mu},{f + \frac{M - 1}{M}}$

are considered. Complex exponents with these frequencies constitute eigen-spaces that are invariant under linear periodic transformations (see, e.g., R. Shenoy, D. Burnside, T. Parks, “Linear Periodic Systems and Multirate Filter Design,” IEEE Transactions on Signal Processing, vol. 42, no. 9, pp. 2242-2256, 1994, and M. Vetterli, “A Theory of Multirate Filter Banks,” IEEE Transactions on Acoustics, Speech, and Signal Processing, Vols. ASSP-35, no. 3, pp. 356-372, March 1987). In other words, the response of a Time Interleaved Analog to Digital Converter (TIADC) system to the weighted sum of complex exponentials from the same eigen-space is a weighted sum of the same complex exponentials at the same frequencies. This principle can be used for sinewaves instead of complex exponentials. The corresponding set of frequencies for real sinewaves in U.S. Pat. No. 7,541,958 is referred to as a Family of Mutual Alias Frequencies (FMAF). FMAF frequencies may be defined using the following notations: F_(s)—the combined sampling rate of TIADC, M—number of time interleaved ADC channels, and P—an integer multiple of M which specifies frequency grid f_(p), according to the following:

$\begin{matrix} {{f_{p} = {\frac{F_{s}}{2P}p}},{p = 0},1,\ldots \mspace{14mu},P} & (1) \end{matrix}$

Then, the i-th frequency index (i=0, 1, . . . , M−1) inside the k-th

$\left( {{k = 1},\ldots \mspace{14mu},{\frac{P}{M} - 1}} \right)$

FMAF can be defined as follows:

$\begin{matrix} {{p_{i}(k)} = \left\{ \begin{matrix} {{k + {2\frac{Pi}{M}}},} & {{{if}\mspace{14mu} i} < \frac{M}{2}} \\ {{{- k} + {2\frac{P\left( {i - \frac{M}{2} + 1} \right)}{M}}},} & {{{if}\mspace{14mu} i} > {\frac{M}{2} - 1}} \end{matrix} \right.} & (2) \end{matrix}$

It should be noted that TIADC input signals with frequencies from the same k-th FMAF have the feature that DFT (Discrete Fourier Transform) at individual ADC outputs will have a single spectral tone at k-th bin.

Frequency domain correction can be derived by matrix multiplication as follows:

h _(k) ^((cor))=(H _(k))⁻¹ h _(k)  (3)

where h_(k) represents the vector with the m-th component, h_(k)(m) representing a DFT in the k-th frequency bin at m-th ADC output before correction, h_(k) ^((cor)) represents a corresponding vector after correction, and matrix (H_(k))⁻¹ represents the inverse of the matrix with components H_(k)(m, i) derived in a calibration stage per DFT computation in the k-th bin at the m-th ADC output when a single tone having i-th frequency from the k-th FMAF was used for calibration. An example of frequency domain correction according to (3) is shown in FIG. 1.

Other techniques are directed to time domain implementation and are suitable for continuous data application, see, e.g., U.S. Pat. No. 8,009,070, which requires inversion of matrixes of size L×L, where L represents the number of finite impulse response (FIR) filter taps.

SUMMARY

Embodiments of the disclosed technology generally pertain to time domain procedures for correction of frequency dependent mismatches of Time Interleaved Analog to Digital Converters (TIADC) systems. Time domain correction may be derived on the basis of frequency domain correction matrixes and represent significant reduction in complexity for finite impulse response (FIR) filter designs compared to previously reported results for time domain correction.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an example of a prior implementation of frequency domain correction.

FIG. 2 illustrates an example of a Time Interleaved Analog to Digital Converter (TIADC) system in accordance with certain embodiments of the disclosed technology.

FIG. 3 illustrates an example of a time domain implementation structure of a correction algorithm in accordance with certain embodiments of the disclosed technology.

FIG. 4 illustrates an example of a spectrum before and after calibration in accordance with embodiments of the disclosed technology.

FIG. 5 illustrates an example of various correction finite impulse response (FIR) filter coefficients in accordance with embodiments of the disclosed technology.

DETAILED DESCRIPTION

FIG. 2 illustrates an example model of a Time Interleaved Analog to Digital Converter (TIADC) system 200 in accordance with certain embodiments of the disclosed technology. In the example, there are M parallel time-interleaved ADC channels with indexes m=0, 1, . . . , M−1. The m-th ADC samples its input signal at time instances nMT+mT. These samples are corrected by a DSP Correction Block 202, which is described in greater detail below with particular regard to FIG. 3. Correction is needed since ADC channels may introduce linear distortion and mismatches.

The Fourier Transform U(f) of a common signal u(t) at the input of the TIADC and m-th ADC Frequency Response G_(m) ^((C))(f) (up to the sampling point) yields the following:

H _(m) ^((C))(f)=U(f)G _(m) ^((C))(f)  (4)

where H_(m) ^((C))(f) is Fourier Transform of corresponding analog signal before sampling by m-th ADC. G_(m) ^((C))(f), l=0, 1, . . . , M−1, and hence H_(m) ^((C))f), include not only frequency dependent gain mismatches but also phase mismatches due to the timing inaccuracy of a TI structure.

The Fourier Transform of a discrete time signal h_(m)(n) at the m-th TI channel output may be given by the following:

$\begin{matrix} {{H_{m}^{(D)}(f)} = {\frac{1}{MT}{\sum\limits_{n = {- \infty}}^{\infty}{{H_{m}^{(C)}\left( {f - \frac{n}{MT}} \right)}^{{{j2\pi}{({f - \frac{n}{MT}})}}{mT}}}}}} & (5) \end{matrix}$

The TIADC structure may distort the spectrum of the input signal by introducing some frequency dependent changes in magnitude and phase of the signal spectrum. It may also introduce aliasing spurs into the spectrum due to gain and phase mismatches between TI channels. Depending on the application, one may want to recover signal spectrum corresponding to ideal sampler or remove only mismatch spurs trying to improve Spurious-Free Dynamic Range (SFDR) values and make the system look mismatch-free.

Application of a TIADC mismatch correction algorithm generally includes an assumption that a signal at the TIADC input is real and band-limited to F_(s)/2. During a calibration stage, the sine waves having frequencies from Families of Mutual Alias Frequencies (FMAFs) may be applied sequentially and corresponding TIADC outputs may be processed with Discrete Fourier Transform (DFT).

The DFT results may then be compared against desired results, which are expected DFT values in the absence of mismatches or other linear distortions. Based on this comparison, two-dimensional arrays of frequency domain correction coefficients may be computed. Such arrays may include matrixes that may need to be multiplied by TIADC frequency domain outputs to compensate for mismatches. Embodiments of the disclosed technology generally provide techniques for designing FIR filters based at least in part on frequency correction matrixes.

To find correction matrixes in the frequency domain, sets of FMAF frequencies given by (2) for

${k = 1},\ldots \mspace{14mu},{\frac{P}{M} - 1}$

may be extended to include also groups of frequencies corresponding to DC (k=0) and to Nyquist frequency (k=P/M). Frequency indexes of the k-th FMAF are in the k-th column of the following matrix, exemplified for a case in which M=4 and P=32:

$\begin{matrix} {{P\_ FMAF} = \begin{pmatrix} 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 \\ 16 & 17 & 18 & 19 & 20 & 21 & 22 & 23 & 24 \\ 16 & 15 & 14 & 13 & 12 & 11 & 10 & 9 & 8 \\ 32 & 31 & 30 & 29 & 28 & 27 & 26 & 25 & 24 \end{pmatrix}} & (6) \end{matrix}$

In the example, the first column(k=0) corresponds to frequencies 0, Fs/4, Fs/4, Fs/2. Applying each of these frequencies at the TIADC input will result in the spectral line at 0 frequency (DC) at individual ADC outputs.

Related single tones (e.g., columns of the matrix) may be applied with frequency indexes p_(i)(k) (i=0, 1, . . . , M−1) to obtain corresponding DFT results in the k-th bin, (with m-th component of the vector, h_(k,i)(m) being k-th bin DFT at m-th ADC output), and to form a matrix from these column vectors:

H _(k)

(h _(k,0) ,h _(k,1) , . . . ,h _(k,M-1))  (7)

A matrix for corresponding desired values, discussed in detail below, may be formed as follows:

H _(k) ^((des))

(h _(k,0) ^((des)) ,h _(k,1) ^((des)) , . . . ,h _(k,M-1) ^((des)))  (8)

The frequency domain correction matrix Q_(k) can be found from

H _(k) ^((des)) =Q _(k) H _(k)  (9)

to be

Q _(k) =H _(k) ^((des))(H _(k))⁻¹  (10)

where all of the matrixes have sizes M by M.

In the example, the first column (k=0) and last column (k=P/M) in index matrix P have two times repeating indexes. Application of the same frequency two times will result in two identical columns in H_(k). Also, it should be noted that these two columns result in real valued vectors h_(0,i) (DC) and h_(P/M,i) (Nyquist), which means that information about complex amplitude of applied single tones is lost. However, both of these issues (singularity of H_(k) and loss of information) can be resolved by using 90 degree shifted versions of the same sinewave if the frequency index repeats. The procedure may be repeated for all frequency bins of interest, e.g., for other columns of frequency index matrix P.

In situations where full equalization is required, certain desired values, e.g., vectors h_(k,i) ^((des)), may be the delayed version of distortion-free values. Exciting the TIADC system without distortion with a sinewave at frequency f_(p) and complex amplitude A=ae^(jφ), then the spectrum at the m-th ADC output will be as follows:

$\begin{matrix} {{{\hat{H}}_{m}^{(D)}(f)} = {\frac{F_{s}}{2M}\left\lbrack {{^{2\pi \; f_{p}{mT}}{\sum\limits_{n = {- \infty}}^{\infty}{A\; {\delta \left( {f - f_{p} - \frac{n\; F_{s}}{M}} \right)}}}} + {^{{- 2}\pi \; f_{p}{mT}}{\sum\limits_{n = {- \infty}}^{\infty}{A^{*}{\delta \left( {f + f_{p} - \frac{n\; F_{s}}{M}} \right)}}}}} \right\rbrack}} & (11) \end{matrix}$

where δ(x) is the delta function and F_(s)=1/T.

In order to replace the continuous spectrum with DFT, an integer number P (e.g., specifying the frequency grid) may be selected and DFT may be calculated at each ADC output at frequency bins as follows:

$\begin{matrix} {{f_{k} = {\frac{F_{s}}{2P}k}},{k = 0},1,\ldots \mspace{14mu},{P/M}} & (12) \end{matrix}$

If single tones are sequentially applied at the TIADC input at frequencies as follows:

$\begin{matrix} {{f_{p} = {\frac{F_{s}}{2P}p}},{p = 0},1,\ldots \mspace{14mu},P} & (13) \end{matrix}$

then, based on (11), the DFT at the m-th ADC output may be given by:

$\begin{matrix} {{{\hat{H}}_{m}(k)} = {\frac{F_{s}}{2M}\left\lbrack {{\sum\limits_{n = {- \infty}}^{\infty}{A\; {\delta \left( {k - p - \frac{nP}{M}} \right)}^{j\frac{2\pi}{P}{pm}}}} + {\sum\limits_{n = {- \infty}}^{\infty}{A\; {\delta \left( {k + p - \frac{nP}{M}} \right)}^{{- j}\frac{2\pi}{P}{pm}}}}} \right\rbrack}} & (14) \end{matrix}$

For m, i=0, 1, . . . , M−1; k=0, 1, . . . P/M, the following may be defined:

$\begin{matrix} {{E_{m,i}(k)}\overset{\Delta}{=}\left\{ \begin{matrix} ^{\frac{{j2\pi}\; m\; {p_{i}{(k)}}}{2P},} & {{{if}\mspace{14mu} i} < {M/2}} \\ ^{\frac{{- {j2\pi}}\; m\; {p_{i}{(k)}}}{2P},} & {{{if}\mspace{14mu} i} \geq {M/2}} \end{matrix} \right.} & (15) \end{matrix}$

Using (15), the DFT for single tone with frequency index p_(i)(k) (e.g., applied at the input of distortion-free TIADC system) at the m-th ADC output becomes:

$\begin{matrix} {{{\hat{H}}_{m,i}(k)} = \left\{ \begin{matrix} {{{Real}\left\lbrack {2{{\overset{\sim}{A}}_{i}(k)}{E_{m,i}(k)}} \right\rbrack},} & {{{if}\mspace{14mu} k} = {{0\mspace{14mu} {or}\mspace{14mu} k} = {P/M}}} \\ {{{{\overset{\sim}{A}}_{i}(k)}{E_{m,i}(k)}},} & {{{if}\mspace{14mu} k} \neq {0\mspace{14mu} {or}\mspace{14mu} k} \neq {P/M}} \end{matrix} \right.} & (16) \end{matrix}$

where Ã_(i) (k) represents a modified complex amplitude of a single tone with frequency index p_(i) (k) and complex amplitude A_(i)(k)=a_(i)(k)e^(jφ) ^(i) ^((k)) defined by the following:

$\begin{matrix} {{{\overset{\sim}{A}}_{i}(k)}\overset{\Delta}{=}\left\{ \begin{matrix} {{A_{i}(k)},} & {{{if}\mspace{14mu} i} < {M/2}} \\ {{A_{i}^{*}(k)},} & {{{if}\mspace{14mu} i} \geq {M/2}} \end{matrix} \right.} & (17) \end{matrix}$

The following defines the column vector from distortion-free values Ĥ_(m,i)(k):

ĥ _(k,i)

(Ĥ _(0,i)(k),Ĥ _(1,i)(k), . . . ,Ĥ _(M,i)(k))^(T)  (18)

where ( )^(T) denotes transpose.

In order to form vectors of delayed distortion-free values, a delay factor may be defined for i=0, 1, . . . , M−1;

${k = 0},1,{\ldots \mspace{14mu} \frac{P}{M}}$

and for some delay Δ (where Δ is a delay specified in units of sampling time T):

$\begin{matrix} {{D_{i}\left( {k,\Delta} \right)}\overset{\Delta}{=}\left\{ \begin{matrix} {^{\frac{{j2\pi\Delta}\; {p_{i}{(k)}}}{2P}},} & {{{if}\mspace{14mu} i} < {M/2}} \\ {^{\frac{{- {j2\pi\Delta}}\; {p_{i}{(k)}}}{2P}},} & {{{if}\mspace{14mu} i} \geq {M/2}} \end{matrix} \right.} & (19) \end{matrix}$

Then:

h _(k,i) ^((des)) =ĥ _(k,i) D _(i)(k,Δ)  (20)

For full equalization magnitude and phase information about calibration, single tones are generally required in order to form desired vectors h_(k,i) ^((des)) (see, e.g., 20, 19, 18, and 16). In situations where it is more pragmatic to correct only for TI mismatch spurs, the magnitude and phase information is not required since one can choose any of the TIADCs to be a reference and correct mismatches relative to the reference ADC. If the first ADC (m=0) is chosen to be the reference, then

h _(k,i) ^((des))

(H _(0,i)(k),H _(0,i)(k)E _(1,i)(k), . . . ,(H _(0,i)(k)E _(M-1,i)(k))^(T)  (21)

where H_(0,i)(k) is the DFT in the k-th bin at the first reference ADC output when a single tone with frequency index p_(i)(k) is applied. Factor E_(m,i)(k) is defined in (15) and takes into account that the desired value at the m-th ADC output should be delayed by riff relative to the first (m=0) reference ADC output. The delay factor defined by (19) may be applied to all ADC desired outputs in this case as well.

FIR filters may be designed per frequency domain correction matrixes Q_(k) for time domain implementation of correction algorithms. A FIR filter may be designed per each index pair (l, m) of Q_(k) with k=0, 1, . . . , P/M (e.g., first Nyquist zone frequency grid according to (12)). The FIR filter is to be designed given the following set of frequency response samples specified at P/M+1 points:

$\begin{matrix} {q_{l,m}\overset{\Delta}{=}\left( {{Q_{0}\left( {l,m} \right)},{Q_{1}\left( {l,m} \right)},\ldots \mspace{14mu},{Q_{\frac{P}{M}}\left( {l,m} \right)}} \right)} & (22) \end{matrix}$

This may be done for all pairs (l, m), which will eventually result in M² FIR filters because the size of Q_(k) is M by M (l, m=0, 1, . . . , M−1). Having designed all M² FIRs, an M by M correction matrix filter C(z) may be formed with the (l, m)-th entry being C_(l,m)(z), the transfer function of the (l,m)-th filter with coefficients as follows:

C _(l,m)

(c _(l,m)(0),c _(l,m)(1), . . . ,c _(l,m)(N−1))^(T)  (23)

Designing M² FIR filters in which each (l, m)-th filter (l, m=0, 1, . . . , M−1) is designed by minimizing the weighted squared error (WSE) between corresponding FIR filter actual frequency response samples is as follows:

$\begin{matrix} {{{\overset{\sim}{q}}_{l,m}(k)} = {\sum\limits_{n = 0}^{N - 1}{{c_{l,m}(n)}^{\frac{{- {j2\pi}}\; {kn}}{({2{P/M}})}}}}} & (24) \end{matrix}$

where the specified frequency response samples q_(l,m)(k), k=0, 1, . . . , P/M are given in the first Nyquist zone by (22). For each pair (l, m), l, m=0, 1, . . . , M−1), a corresponding FIR c_(l,m)(n), n=0, 1, . . . , N−1 may be found such that the WSE is minimized, with the WSE given by the following:

$\begin{matrix} {ɛ_{l,m} = {\sum\limits_{k = 0}^{P/M}{{\beta (k)}{{{q_{l,m}(k)} - {\sum\limits_{n = 0}^{N - 1}{{c_{l,m}(n)}^{\frac{{- {j2\pi}}\; {kn}}{({2{P/M}})}}}}}}^{2}}}} & (25) \end{matrix}$

where β(k) is the weighting factor for k-th frequency bin and is identical for all FIRs (e.g., all (l, m) pairs). The last restriction may be removed if desired and β(k) may be replaced by β_(l,m)(k).

By introducing vector and matrix notations, the minimization of (25) may be reformulated as a weighted least-squares problem and any minimization methods (e.g., normal equations, differentiation, and completion of squares) may be used to find filter coefficients c_(l,m)(n), n=0, 1, . . . , N−1. The following is a DFT-type matrix W:

$\begin{matrix} {{{W\left( {k,n} \right)} = ^{\frac{{- {j2\pi}}\; {kn}}{({2{P/M}})}}},{n = 0},1,\ldots \mspace{14mu},{{N - 1};{k = 0}},1,\ldots \mspace{14mu},{P/M}} & (26) \end{matrix}$

and a weight matrix B:

B=diag(β).  (27)

It may then be shown that corresponding FIR filter coefficients (here represented in a column vector c_(l,m)) are as follows:

c _(l,m)=(Real[W ^(H) BW])⁻¹Real[W ^(H) Bq _(l,m)]  (28)

where ( )^(H) denotes complex-conjugate transpose.

To prove (28), index pair (l, m) may be dropped from FIR filter coefficients c_(l,m)(n), n=0, 1, . . . , N−1 (where N is the length of a FIR filter, not necessarily same for all M² FIR filters), and index (l, m) may be dropped from (22) and (25). Desired frequency response may be denoted samples q(k), k=0, 1, . . . , P/M and mean squared error ε. A differentiation method may be used to prove (28). Considering ε to be a function of FIR filter coefficients c and using (25), it follows that:

$\begin{matrix} {\frac{\partial ɛ}{\partial c} = {{2{\sum\limits_{k = 0}^{P/M}{{\beta (k)}{{Real}\left\lbrack {w_{k}^{H}w_{k}} \right\rbrack}c}}} - {2{\sum\limits_{k = 0}^{P/M}{{\beta (k)}{{Real}\left\lbrack {{q(k)}w_{k}^{H}} \right\rbrack}}}}}} & (29) \end{matrix}$

where w_(k) refers to the k-th row of matrix W in (26). To find c, gradient vector may be equated to zero and, after application of certain algebraic operations, (28) may be obtained.

The above procedure of finding FIR filter coefficients may repeat M² times to find M² FIRs (e.g., one FIR c_(l,m) per each frequency response vector q_(l,m)).

It should be noted that the matrix that needs to be inverted in (28) is a real N by N matrix (where N refers to the FIR filter length) and it does not depend on measurements q_(l,m)—hence, the values of this matrix can be pre-computed and stored. It should also be noted that, for certain reasonable choices of weighting factors β(k), neither matrix inversion is required in the computation of c_(l,m) in (28) nor matrix multiplication by (Real[W*BW])⁻¹ as it becomes diagonal for the (r,t)-th entry of this matrix is Real[Σ_(k=0) ^(P/M)β(k)e^(j2πk(r−t)/(2N/M)))]. This is the case, for example, with β(k)=0 if k is even, and β(k))=1 otherwise. Such a choice of is reasonable when the DC, Nyquist, and calibration frequencies' harmonics due to non-linear distortions need to be avoided. Hence, matrix inversions are required only at the stage of finding frequency correction matrixes by (10) for matrixes of size M by M.

FIG. 3 illustrates an example of a time domain implementation structure 202 of a correction algorithm in accordance with certain embodiments of the disclosed technology. While the example is exemplified for M=4, one having ordinary skill in the art will appreciate that the correction algorithm may be generalized to other values of M.

A typical matrix filter C(z) according to embodiments has M input streams H_(m)(z),m=0, 1, . . . , M−1 (e.g., corresponding to M ADC outputs) and produces M ouput streams H_(l) ^(cor)(z), l=0, 1, . . . , M−1 according to the following:

(H ₀ ^(cor)(z),H ₁ ^(cor)(z), . . . , H _(M-1) ^(cor)(z))^(T) =C(z)(H ₀(z),H ₁(z), . . . ,H _(M-1)(z))^(T)  (30)

The matrix filter C(z) may operate at Fs/M rate and can be viewed as a polyphase time invariant implementation of periodically time varying filter at F_(s) rate. In the absence of time interleaved mismatches, matrix components of C(z) will generally represent M phases of a decimated time invariant filer and the matrix will have the following structure (for M=4):

$\begin{matrix} {{C(z)} = \begin{pmatrix} {C_{0}(z)} & {C_{1}(z)} & {C_{2}(z)} & {C_{3}(z)} \\ {z^{- 1}{C_{3}(z)}} & {C_{0}(z)} & {C_{1}(z)} & {C_{2}(z)} \\ {z^{- 1}{C_{2}(z)}} & {z^{- 1}{C_{3}(z)}} & {C_{0}(z)} & {C_{1}(z)} \\ {z^{- 1}{C_{1}(z)}} & {z^{- 1}{C_{2}(z)}} & {z^{- 1}{C_{3}(z)}} & {C_{0}(z)} \end{pmatrix}} & (31) \end{matrix}$

FIG. 4 illustrates an example of a spectrum before and after calibration in accordance with embodiments of the disclosed technology. In the example, M=4, F_(s)=25 GS/s, Ftest=10 GHz. Mismatch spurs are improved from 40 dB (e.g., at the input of the DSP correction block) to 100 dB (e.g., at the output of the DSP correction block). Spurs due to mismatches between TIADC channels are improved by more than 60 dB after correction.

FIG. 5 illustrates an example of various correction FIR filter coefficients in accordance with embodiments of the disclosed technology. In the example, the first column has only one significant tap in FIR labeled ‘c₀₀’ and all negligible taps values for FIRs labeled ‘c₀₁’, ‘c₀₂’, ‘c₀₃’. This is a result of correction relative to the first TIADC. In this case, there is no need to implement all 16 FIR filters because 12 FIR filters are enough.

The following discussion is intended to provide a brief, general description of a suitable machine in which embodiments of the disclosed technology or certain portions thereof can be implemented. As used herein, the term “machine” is intended to broadly encompass a single machine or a system of communicatively coupled machines or devices operating together. Exemplary machines can include computing devices such as personal computers, workstations, servers, portable computers, handheld devices, tablet devices, and the like.

Typically, a machine includes a system bus to which processors, memory (e.g., random access memory (RAM), read-only memory (ROM), and other state-preserving medium), storage devices, a video interface, and input/output interface ports can be attached. The machine can also include embedded controllers such as programmable or non-programmable logic devices or arrays, Application Specific Integrated Circuits, embedded computers, smart cards, and the like. The machine can be controlled, at least in part, by input from conventional input devices (e.g., keyboards and mice), as well as by directives received from another machine, interaction with a virtual reality (VR) environment, biometric feedback, or other input signal.

The machine can utilize one or more connections to one or more remote machines, such as through a network interface, modem, or other communicative coupling. Machines can be interconnected by way of a physical and/or logical network, such as an intranet, the Internet, local area networks, wide area networks, etc. One having ordinary skill in the art will appreciate that network communication can utilize various wired and/or wireless short range or long range carriers and protocols, including radio frequency (RF), satellite, microwave, Institute of Electrical and Electronics Engineers (IEEE) 545.11, Bluetooth, optical, infrared, cable, laser, etc.

Embodiments of the disclosed technology can be described by reference to or in conjunction with associated data including functions, procedures, data structures, application programs, instructions, etc. that, when accessed by a machine, can result in the machine performing tasks or defining abstract data types or low-level hardware contexts. Associated data can be stored in, for example, volatile and/or non-volatile memory (e.g., RAM and ROM) or in other storage devices and their associated storage media, which can include hard-drives, floppy-disks, optical storage, tapes, flash memory, memory sticks, digital video disks, biological storage, and other tangible, physical storage media.

Associated data can be delivered over transmission environments, including the physical and/or logical network, in the form of packets, serial data, parallel data, propagated signals, etc., and can be used in a compressed or encrypted format. Associated data can be used in a distributed environment, and stored locally and/or remotely for machine access.

Having described and illustrated the principles of the invention with reference to illustrated embodiments, it will be recognized that the illustrated embodiments may be modified in arrangement and detail without departing from such principles, and may be combined in any desired manner. And although the foregoing discussion has focused on particular embodiments, other configurations are contemplated. In particular, even though expressions such as “according to an embodiment of the invention” or the like are used herein, these phrases are meant to generally reference embodiment possibilities, and are not intended to limit the invention to particular embodiment configurations. As used herein, these terms may reference the same or different embodiments that are combinable into other embodiments.

Consequently, in view of the wide variety of permutations to the embodiments described herein, this detailed description and accompanying material is intended to be illustrative only, and should not be taken as limiting the scope of the invention. What is claimed as the invention, therefore, is all such modifications as may come within the scope and spirit of the following claims and equivalents thereto. 

1. A machine-implemented method, comprising: receiving a common input signal over a plurality of M parallel time-interleaved (TI) analog to digital converter (ADC) channels; determining a multiple-input, multiple-output finite impulse response (FIR) filter structure for correcting bandwidth mismatches between the plurality of M parallel TIADC channels, the structure comprising a plurality of FIR filters; and providing a common output signal comprising TI data corresponding to the plurality of M parallel TIADC corrected channels.
 2. A machine-implemented method according to claim 1, further comprising finding a plurality of FIR filter coefficients for the plurality of FIR filters, the finding comprising inverting a matrix of size M by M, wherein M represents the number of TI channels, and wherein no inversion of an order higher than M is required.
 3. A machine-implemented method according to claim 2, wherein the number of FIR filters in the plurality of FIR filters is determined by M², and wherein finding the plurality of FIR filter coefficients further comprises minimizing a weighted least-square error between a FIR filter frequency response and a desired frequency response in accordance with the following: $ɛ_{l,m} = {\sum\limits_{k = 0}^{P/M}{{\beta (k)}{{{q_{l,m}(k)} - {\sum\limits_{n = 0}^{N - 1}{{c_{l,m}(n)}^{\frac{{- {j2\pi}}\; {kn}}{({2{P/M}})}}}}}}^{2}}}$ where c_(l,m)(n) refers to the n-th coefficients of the FIR labeled with indexes (l, m), l, m=0, 1, . . . , M−1, q_(l,m)(k) refers to the corresponding FIR desired frequency response, 1/P specifies the frequency grid, and β(k) is a weighting factor for the k-th frequency bin and is identical for all FIRs (all (l, m) pairs).
 4. A machine-implemented method according to claim 3, where β(k) is replaced by ρ_(l,m)(k) when the weighting factors are not necessarily identical.
 5. A machine-implemented method according to claim 3, where the corresponding FIR filter coefficients (represented in a column vector c_(l,m)) are determined based on the following: c _(l,m)=(Real[W ^(H) BW])⁻¹Real[W ^(H) Bq _(l,m)] where diagonal matrix B is formed from β(k) elements, q_(l,m) is a column vector formed from q_(l,m)(k) elements, and W is a DFT-type matrix defined as the following: ${{W\left( {k,n} \right)} = ^{\frac{{- {j2\pi}}\; {kn}}{({2{P/M}})}}},{n = 0},1,\ldots \mspace{14mu},{{N - 1};}$ k = 0, 1, …  , P/M.
 6. A machine-implemented method according to claim 3, wherein desired frequency responses of the M² FIRs (q_(l,m)(k)) are found by (1) forming a frequency correction matrix for a set of frequencies that are invariant under linear periodic transformations, (2) forming a three-dimensional array by stacking frequency correction matrixes for different sets of frequencies using the third dimension, and (3) selecting the desired frequency responses along the third dimension of the three-dimensional array.
 7. A machine-implemented method according to claim 6, further comprising a calibration stage comprising: sending a set of single tones from the set of frequencies that are invariant under the linear periodic transformation and measuring corresponding Discrete Fourier Transforms (DFTs) at the TIADC outputs; forming a set of desired DFTs; deriving frequency correction matrixes that transform the measured DFTs into desirable DFTs; and deriving FIR coefficients from the frequency correction matrixes.
 8. A machine-implemented method according to claim 7, wherein the set of desired DFTs include DFTs of a delayed version of mismatch-free TIADC outputs.
 9. A machine-implemented method according to claim 7, further comprising forming a matrix of desired DFTs at the TIADC outputs as: H _(k) ^((des))

(h _(k,0) ^((des)) ,h _(k,1) ^((des)) , . . . ,h _(k,M-1) ^((des))) where vectors h_(k,i) ^((des)) are defined by: h_(k, i)^((des)) = ĥ_(k, i)D_(i)(k, Δ) with ${D_{i}\left( {k,\Delta} \right)}\overset{\Delta}{=}\left\{ \begin{matrix} {^{\frac{{j2\pi\Delta}\; {p_{i}{(k)}}}{2P}},} & {{{if}\mspace{14mu} i} < {M/2}} \\ {^{\frac{{- {j2\pi\Delta}}\; {p_{i}{(k)}}}{2P}},} & {{{if}\mspace{14mu} i} \geq {M/2}} \end{matrix} \right.$ being a delay factor of signal delayed by Δ with frequency index p_(i)(k), and ĥ_(k,i) represents the DFT in the k-th bin at the i-th distortion-less ADC output derived as: ${\hat{h}}_{k,i}\overset{\Delta}{=}\left( {{{\hat{H}}_{0,i}(k)},{{\hat{H}}_{1,i}(k)},\ldots \mspace{14mu},{{\hat{H}}_{M,i}(k)}} \right)^{T}$ ${{\hat{H}}_{m,i}(k)} = \left\{ {{\begin{matrix} {{{Real}\left\lbrack {2{{\overset{\sim}{A}}_{i}(k)}{E_{m,i}(k)}} \right\rbrack},} & {{{if}\mspace{14mu} k} = {{0\mspace{14mu} {or}\mspace{14mu} k} = {P/M}}} \\ {{{{\overset{\sim}{A}}_{i}(k)}{E_{m,i}(k)}},} & {{{if}\mspace{14mu} k} \neq {0\mspace{14mu} {or}\mspace{14mu} k} \neq {P/M}} \end{matrix}{E_{m,i}(k)}}\overset{\Delta}{=}\left\{ \begin{matrix} {^{\frac{{j2\pi}\; m\; {p_{i}{(k)}}}{2P}},} & {{{if}\mspace{14mu} } < {M/2}} \\ {^{\frac{{- {j2\pi}}\; m\; {p_{i}{(k)}}}{2P}},} & {{{if}\mspace{14mu} } \geq {M/2}} \end{matrix} \right.} \right.$ where Ã_(i)(k) represents a complex amplitude of an applied sinewave tone after sampling by the i-th ADC without distortion.
 10. A machine-implemented method according to claim 9, where the first ADC (m=0) is chosen to be the reference and: h _(k,i) ^((des))

^((H) _(0,i)(k),H _(0,i)(k)E _(1,i)(k), . . . ,(H _(0,i)(k)E _(M-1,i)(k))^(T) where H_(0,i)(k) represents the DFT in the k-th bin at the first reference ADC output when a single tone having frequency index p_(i)(k) is applied.
 11. A machine-implemented method according to claim 7, further comprising finding a frequency correction matrix Q_(k) for determining FIR coefficients using a matrix of desired DFTs H_(k) ^((des)) and measured DFTs H_(k) through: Q _(k) =H _(k) ^((des))(H _(k))⁻¹.
 12. A machine-implemented method according to claim 11, further comprising repeating frequencies that result in DC frequency and Nyquist frequency components at TIADC individual channel outputs.
 13. A machine-implemented method according to claim 12, further comprising sending a 90-degree shifted version of the repeating frequency tone.
 14. A machine-implemented method according to claim 11, further comprising finding FIR coefficients from the correction matrixes Q_(k) for different frequency sets characterized by the parameter k with q_(l,m)(k) being the l,m-th component of the matrix Q_(k). 